package com.my.db.test.mybatis.enums.config.test.mybaits;

/**
 * @author timo 2021/3/25
 */
/**
 * 需要保存到数据库还需要实现和数据库的自定义转换类,否则向数据库添加数据的时候会报类型转换错误,无法添加数据.转换类代码如下:
 **/
//@MappedTypes({BaseEnum.class})
//@MappedJdbcTypes({JdbcType.INTEGER})
//public class BaseEnumTypeHandler<E extends BaseEnum> extends BaseTypeHandler<BaseEnum> {
//    private Class<E> clazz;
//
//    public BaseEnumTypeHandler(Class<E> enumType) {
//        if (enumType == null) {
//            throw new IllegalArgumentException("Type argument cannot be null");
//        }
//        this.clazz = enumType;
//    }
//
//    @Override
//    public void setNonNullParameter(PreparedStatement preparedStatement, int i, BaseEnum windLabEnum, JdbcType jdbcType) throws SQLException {
//        preparedStatement.setInt(i, windLabEnum.getId());
//    }
//
//    @Override
//    public BaseEnum getNullableResult(ResultSet resultSet, String s) throws SQLException {
//        return getByType(resultSet.getInt(s));
//    }
//
//    @Override
//    public BaseEnum getNullableResult(ResultSet resultSet, int i) throws SQLException {
//        return getByType(resultSet.getInt(i));
//    }
//
//    @Override
//    public BaseEnum getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
//        return getByType(callableStatement.getInt(i));
//    }
//
//    private BaseEnum getByType(int anInt) {
//        final E[] enumConstants = clazz.getEnumConstants();
//        for (BaseEnum enums : enumConstants) {
//            if (enums.getId() == anInt) {
//                return enums;
//            }
//        }
//        return null;
//    }
//}
